package player;

public class Player {
	
	private String name;
	private Account account;
	private int position, jailCount;
	private boolean inJail;

	/**
	 * Opretter et spillerobjekt. Spillerobjektet opretter et tilhørende konto-objekt.
	 * Spillerens position sættes (til 1 = startfeltet) og antallet af felter af typen spilleren ejer sættes (til 0).
	 */
	public Player(int money){
		account = new Account(money); //Opretter et nyt konto-objekt
		position = 0; // Spilleren starter på Start-feltet = fields[0]
		inJail = false;
		jailCount = 0;
	}

	/**
	 * Hent spillerens konto
	 * @return Spillerens konto
	 */
	public Account getAccount(){ 
		return account;
	}

	/**
	 * Sæt spillerens navn til den ønskede String
	 * @param name Spillerens navn
	 */
	public void setName(String name){ 
		this.name=name;
	}

	/**
	 * Returnerer spillerens navn som en string
	 * @return Spillerens navn
	 */
	public String getName(){
		return name;
	}

	/**
	 * Hent spillerens position (hvilket nummer felt han står på)
	 * @return Spillerens position
	 */
	public int getPosition(){
		return this.position;
	}

	/**
	 * Sæt spillerens position (hvilket nummer felt han er landet på)
	 * @param newPosition Hvilket nummer felt spilleren er landet på
	 */
	public void setPosition(int newPosition){
		this.position = newPosition;
	}
	
	/**
	 * Henter info om spilleren befinder sig i fængsel
	 * @return Boolsk info om fængsling
	 */
	public boolean getInJail(){
		return inJail;
	}
	
	/**
	 * Sætter info om spilleren befinder sig i fængsel
	 * @return Boolsk info om fængsling
	 */
	public void setInJail(boolean set){
		inJail = set;
	}
	
	public int getJailCount(){
		return jailCount;
	}
	
	public void setJailCount(int set){
		jailCount = set;
	}

	/**
	 * Udskriver spillerens navn samt konto
	 */
	public String toString(){
		String str = "Spillernavn: " + name + " med pengebeholdning: " + account;
		return str;
	}

}
